package com.zpark.feign;

import com.zpark.feign.impl.DeptControllerFeignImpl;
import com.zpark.pojo.Dept;
import com.zpark.utils.ResponseData;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * 注解@FeignClient的作用是声接口开启feign功能
 * 属性 value：指定映射的微服务（即在服务注册中心的服务名字）
 * 属性 fallback：当服务提供者宕机之后，执行指定实现类中的方法，而不是调用宕机的服务器接口
 * 属性configuration：配置feign的配置类
 */
@FeignClient(value = "Sentinel-8087",
        fallback = DeptControllerFeignImpl.class)
public interface DeptControllerFeign {

    @GetMapping("/by_id/{id}")
    ResponseData<Dept> findById(@PathVariable(value = "id") Integer id);

    @GetMapping("/all")
    ResponseData<List<Dept>> findAll();
}
